MCPcopy
hub / github.com/cft0808/edict / cmd_task_memo

Function cmd_task_memo

scripts/kanban_update.py:762–795  ·  view source on GitHub ↗

写入任务上下文记忆(跨 Agent 传递决策链)。 decisions: 逗号分隔的关键决策 warnings: 逗号分隔的风险提示

(task_id, agent_id, decisions, warnings='')

Source from the content-addressed store, hash-verified

760
761
762def cmd_task_memo(task_id, agent_id, decisions, warnings=''):
763 """写入任务上下文记忆(跨 Agent 传递决策链)。
764
765 decisions: 逗号分隔的关键决策
766 warnings: 逗号分隔的风险提示
767 """
768 TASK_MEMORY_DIR.mkdir(parents=True, exist_ok=True)
769 memo_file = TASK_MEMORY_DIR / f'{task_id}.json'
770
771 decision_list = [d.strip() for d in decisions.split(',') if d.strip()]
772 warning_list = [w.strip() for w in warnings.split(',') if w.strip()] if warnings else []
773
774 # 从 tasks_source.json 获取当前状态
775 tasks = atomic_json_read(TASKS_FILE, [])
776 task = next((t for t in tasks if t.get('id') == task_id), None)
777 phase = task.get('state', '') if task else ''
778
779 chain_entry = {
780 'agent': agent_id,
781 'phase': phase,
782 'key_decisions': decision_list,
783 'warnings': warning_list,
784 'at': now_iso(),
785 }
786
787 def modifier(data):
788 if not data:
789 data = {'task_id': task_id, 'context_chain': []}
790 data.setdefault('context_chain', []).append(chain_entry)
791 return data
792
793 atomic_json_update(memo_file, modifier, {})
794 log.info(f'📝 {task_id} 任务记忆: {agent_id} → {len(decision_list)} 决策')
795 _append_audit(task_id, agent_id, 'task_memo', None, None, f'{len(decision_list)} decisions')
796
797
798def cmd_shared_memo(content, added_by):

Callers 1

kanban_update.pyFile · 0.85

Calls 4

atomic_json_readFunction · 0.90
now_isoFunction · 0.90
atomic_json_updateFunction · 0.90
_append_auditFunction · 0.85

Tested by

no test coverage detected