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>
49 lines
1.8 KiB
Markdown
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.
|