# Agentdb Feedback

> Close the learning loop — record reward signal for an action AgentDB suggested. Use after using anything from agentdb_pattern_search / reflexion_recall / skill_search / learning_route. The bandit needs the signal to improve.

- Skill: `ruvnet-agentdb/agentdb-feedback` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ruvnet-agentdb/agentdb-feedback`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ruvnet-agentdb/agentdb-feedback/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ruvnet (https://skillmd.com/u/ruvnet-agentdb)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/ruvnet-agentdb/agentdb-feedback

---


# Feedback

Close the loop on a memory or routing decision so AgentDB's bandit learns.

## When to use

- **Always** after using a recall result, a routed action, or a skill suggestion. The most-undervalued part of the loop.
- After a task ends — record episode-level reward.
- When intentionally ignoring a suggestion — record *negative* reward so the bandit notices.

## API

```
agentdb_record_feedback(
  id:        <pattern/skill/episode/decision id>
  reward:    -1..1
  context?:  { task, outcome, latency, ... }
)

agentdb_bandit_update(
  arm:       <bandit arm name>
  reward:    -1..1
)
```

## Reward conventions

| Outcome | Reward |
|---|---|
| Used the suggestion, task succeeded | **+1.0** |
| Used the suggestion, task partial success | **+0.5** |
| Used the suggestion, didn't help | **0.0** |
| Used the suggestion, made things worse | **-0.5** |
| Ignored the suggestion (other reason) | **-0.1** (mild downweight) |
| Rejected as wrong / harmful | **-1.0** |

## Pattern: bracket every recall with feedback

```
const hits = await agentdb_pattern_search(query)
for (const h of useful(hits)) {
  use(h)
  await agentdb_record_feedback(h.id, +1)
}
for (const h of skipped(hits)) {
  await agentdb_record_feedback(h.id, -0.1)
}
```

Without negative feedback, the bandit only sees "winners" and exploration starves.

## Don't

- Don't aggregate. Per-id feedback is what the bandit consumes; a single "task succeeded" reward attached to the task itself doesn't update individual memory weights.
- Don't fabricate reward. Honest 0.0 ("retrieved but didn't help") teaches more than dishonest +1.
- Don't only reward — *especially* record negative reward. It's the higher-information signal.

