Files
graph_explorer/issues/completed/0001-claude-chat-agent.md
T
egutierrez 4ef6a5f7db chore(issues): mover 7 issues completadas a issues/completed/
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>
2026-05-03 00:14:58 +02:00

49 lines
1.8 KiB
Markdown

---
id: 0001
title: Chat con Claude sobre el grafo
status: pending
priority: high
created: 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_KEY` o `~/.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.db` tabla `chat_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.