4ef6a5f7db
Status sincronizado con master: - 0001 chat con Claude -> shipped como panel Echo - 0003 enricher web -> shipped (0028 + 0028b) - 0026 sistema de jobs -> shipped - 0027 tipo Webpage -> shipped - 0028 fetch_webpage -> shipped - 0028b extract trio -> shipped - 0031 layout estable -> shipped Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
id, title, status, priority, created
| id | title | status | priority | created |
|---|---|---|---|---|
| 0001 | Chat con Claude sobre el grafo | pending | high | 2026-04-30 |
Objetivo
Panel "Chat" dentro de graph_explorer que permita conversar con Claude (Anthropic API) usando el grafo activo como contexto. El agente debe poder:
- Leer el grafo (entidades, relaciones, metadata) via tool-use sobre operations.db.
- Responder preguntas tipo: "muestrame los nodos relacionados con X", "que patrones ves en estas conexiones", "que falta investigar".
- Proponer mutaciones (crear nodo, etiquetar relacion) que el usuario aprueba con un click antes de aplicarse.
Alcance tecnico
- Cliente HTTP minimo (libcurl o WinHTTP) → POST a
https://api.anthropic.com/v1/messages. - Modelo por defecto:
claude-sonnet-4-6(revisar al implementar). - API key desde env var
ANTHROPIC_API_KEYo~/.fn_anthropic_key. - Tool-use: definir tools
query_entities,query_relations,propose_node,propose_relation. Las "propose_*" no mutan: insertan en una cola que el usuario revisa antes de aplicar. - Estado de conversacion en memoria (lista de messages). Persistencia opcional
en
graph_explorer.dbtablachat_sessions. - Streaming SSE para feedback en vivo (puede dejarse para v2 — primer hit bloqueante esta bien).
Decisiones a tomar
- Renderizado de markdown en ImGui (TextWrapped basico vs lib externa).
- Threading: bloqueante en hilo aparte → cola de mensajes → main thread lee.
Trabajo previo
Ya existe en el registry python/functions/agents/anthropic_chat_py_agents.py
para inspiracion (usa el SDK Python). En C++ usaremos HTTP directo — sin SDK.
Definicion de hecho
- Panel "Chat" dockeable.
- Conversacion con tool-use sobre operations.db funciona.
- Las mutaciones propuestas por el agente se confirman desde la UI antes de llegar a la BD.